package com.prj.ufdm.cloud.ms.auth.bpo;

import java.util.List;
import com.prj.ufdm.cloud.ms.auth.model.SysUser;
import com.prj.ufdm.cloud.ms.core.bpo.BaseBPO;

/**
 * DESC: 系统用户服务接口 <br>
 * @author 胡义振
 * @date 2020年1月17日
 */
public interface SysUserBPO  extends BaseBPO<SysUser> {
	

	/** 
	 * Desc: 根据用户名获取用户信息
	 * @auther 胡义振
	 * @date 2014-1-9 
	 * @param username
	 * @return 
	 */
	public SysUser doGetSysUserByUsername(String username) throws Exception;
	
	/** 
	 * Desc: 根据TOKEN获取用户信息
	 * @auther 胡义振
	 * @date 2014-1-9 
	 * @param token
	 * @return 
	 */
	public SysUser doGetSysUserByToken(String token) throws Exception;
	
	
	/** 
	 * Desc: 根据用户名、密码获取用户信息
	 * @auther 胡义振
	 * @date 2014-1-9 
	 * @param 
	 *     username 
	 *     password
	 * @return 
	 */
	public SysUser  doGetSysUserByUserNameAndPassword(String username,String password) throws Exception;
	

	/** 
	 * Desc: 检测登录名是否存在
	 * @auther 胡义振
	 * @date 2014-1-9 
	 * @param username
	 * @return 
	 */
	public boolean doCheckSysUserLoginNameExist(String username,String userId) throws Exception;
	
	
 	/**
 	 * Desc: 通过角色ID查询该角色下的用户
 	 * @auther 胡义振
 	 * @date 2018-03-22
 	 * @param roleId  角色ID
 	 * @return
 	 */
     public List<SysUser> doGetSysUserListWithRoleId(SysUser sysUser) throws Exception;
     
  	/**
  	 * Desc: 通Desc:ID查询该角色下的用户
  	 * @auther 胡义振
  	 * @date 2018-03-22
  	 * @param dutyId  职务ID
  	 * @return
  	 */
 	public List<SysUser> doGetSysUserListWithDutyId(SysUser sysUser) throws Exception;
     
	/**
	 * 根据机构id查询对应的用户
	 * 
	 * @param sysUserRole
	 * @return
	 */
	public List<SysUser> doGetSysUserListWithOrganId(SysUser sysUser) throws Exception;
     
 	/**
 	 * 根据用户ID删除系统用户
 	 * @param id 要删除的角色ID（多个ID，逗号分隔）
 	 * @return
 	 * @throws Exception
 	 * @author 胡义振  
 	 * @date 2018年3月27日
 	 */
 	public Integer doRmSysUserById(String userIds) throws Exception;
 	
	/**
	 * Desc: 查询机构下所有用户(所属机构与机构机构用户)
	 * @param sysUser
	 * @return
	 * @throws Exception
	 * @author 
	 * @date 2019年10月18日
	 * @version 1.0
	 */
	public List<SysUser> doGetOrganAllSysUserList(SysUser sysUser) throws Exception;
	
}
